किसी भी लिनक्स इंस्टालेशन का धड़कता दिल कर्नेल है। आपके सामने आने वाले अधिकांश वितरण इस नींव में अनूठी विशेषताओं और क्षमताओं को जोड़ते हैं, लेकिन कर्नेल सभी वितरणों में सॉफ्टवेयर का सामान्य एकीकृत टुकड़ा है जो खुद को लिनक्स कहता है। एक वाणिज्यिक ऑपरेटिंग सिस्टम के विपरीत, कर्नेल बहुत विन्यास योग्य है और किसी भी उपयोगकर्ता द्वारा पूरी तरह से अनुकूलित किया जा सकता है।
आप अपने कर्नेल विन्यास के साथ छेड़छाड़ क्यों करना चाहेंगे? जबकि आपके वितरण द्वारा प्रदान किया गया स्टॉक कर्नेल एक उचित विकल्प है, पैच के अनूठे सेट हैं जो मौलिक रूप से बदल सकते हैं कि कर्नेल कैसे व्यवहार करता है और, कुछ मामलों में, आपके सिस्टम को आपके विशेष उपयोग के मामले में और भी अधिक प्रभावी बनाने के लिए ट्यून कर सकता है।
आइए विशेष लिनक्स कर्नेल के परिदृश्य पर एक नज़र डालें!
कर्नेल. org वेब साइट मेनलाइन लिनक्स कर्नेल के लिए सत्य का अंतिम स्रोत है जिसे कर्नेल टीम नियमित रूप से जारी करती है। यदि आप लैंडिंग पृष्ठ पर एक नज़र डालते हैं, तो आप सूचीबद्ध विभिन्न कर्नेल संस्करण देख सकते हैं:
यदि आप एक Linux उपयोगकर्ता हैं, तो आपने वास्तव में वास्तव में Linux का उपयोग करते हुए अपने पूरे समय में इस पृष्ठ को कभी नहीं देखा होगा। क्या देता है?
उबंटू जैसा वितरण आमतौर पर एक कर्नेल संस्करण का चयन करता है जो विश्वसनीय और स्थिर होने के लिए जाना जाता है, इसे अनुकूलित करने के लिए किसी भी आवश्यक पैच सेट को लागू करता है, और फिर अपने सभी उपयोगकर्ताओं को संकलित कर्नेल प्रदान करता है ताकि वास्तविक संकलन प्रक्रिया (जो कुछ समय लग सकता है!) आपके डेस्कटॉप के बजाय उनके अंत में होता है। इसका मतलब है कि उबंटू 22.04 के दो अप-टू-डेट उपयोगकर्ता, उदाहरण के लिए, एक ही कर्नेल बिल्ड का उपयोग कर रहे हैं, जो विभिन्न इंस्टॉलेशन की एक विस्तृत विविधता में उपयोगकर्ताओं की एक विस्तृत विविधता का समर्थन करना आसान बनाता है। यह उबंटू को विकसित करने वाले इंजीनियरों को एकल कर्नेल बिल्ड प्रदान करने पर ध्यान केंद्रित करने की अनुमति देता है जो कि अच्छी तरह से परीक्षण किया गया है और उनके अधिकांश उपयोगकर्ता की जरूरतों को पूरा करता है।
यदि आप दो अलग- अलग अप-टू-डेट लिनक्स वितरणों पर चल रहे कर्नेल की तुलना करते हैं, हालांकि, उनके संस्करण लगभग निश्चित रूप से भिन्न होंगे। जबकि कर्नेल की स्थिरता के लिए एक उत्कृष्ट प्रतिष्ठा है, कुछ वितरण इस बारे में सतर्क रहना चुनते हैं कि नए कर्नेल पर कब कूदना है। यह आम तौर पर एक अच्छा विचार है - 5.18.16 और 5.10.135 जैसे दो कर्नेल संस्करणों के बीच की संख्या बड़ी लगती है, लेकिन कर्नेल डेवलपर्स सुविधाओं को जोड़ने और हटाने के बारे में रूढ़िवादी हैं, इसलिए आमतौर पर उनके बीच बड़े पैमाने पर व्यावहारिक अंतर नहीं होते हैं। यदि एक लिनक्स वितरण नवीनतम कर्नेल के पीछे कुछ संस्करणों को चिपका देता है, तो अधिक अनुमानित रिलीज प्राप्त करने के लिए ऐसा करना अक्सर ट्रेडऑफ़ के लायक होता है।
लेकिन जब डिफ़ॉल्ट कर्नेल रिलीज़ के बीच बड़े पैमाने पर छलांग नहीं लगाता है, तो विभिन्न डाउनस्ट्रीम डेवलपर्स उन परिवर्तनों के संग्रह को बनाए रखते हैं जो मूल रूप से बदल सकते हैं कि कर्नेल कैसे व्यवहार करता है। इनमें से कुछ में शामिल हैं:
deadline
या cfq
का समर्थन करता है जो डिस्क संचालन के प्रदर्शन पर एक महत्वपूर्ण प्रभाव डाल सकता है, विशेष रूप से कताई डिस्क के लिए जहां स्पिंडल और रीड हेड्स की भौतिक वास्तविकताएं प्रभावित करती हैं कि डेटा कितनी जल्दी एक्सेस किया जा सकता है।Linux चलाने की खूबी यह है कि ये सभी विभिन्न विकल्प आपके लिए पूरी तरह से खुले हैं! आइए उनमें से कुछ पर एक नजर डालते हैं।
डिफ़ॉल्ट लिनक्स कर्नेल में कोई आकर्षक अनुकूलन नहीं होता है, लेकिन अभी भी कुछ सेटिंग्स हैं जो अभी भी उपयोगकर्ता के नियंत्रण में हैं, उनके कर्नेल को फिर से संकलित करने या स्रोत कोड में परिवर्तन करने की आवश्यकता के बिना।
उदाहरण के लिए, उपरोक्त I/O अनुसूचक यह निर्देश देता है कि कर्नेल लंबित संचालन को या तो पढ़ने या लिखने के लिए लगातार भंडारण को प्राथमिकता देता है। यह कई कारणों से एक महत्वपूर्ण सेटिंग है। क्या कर्नेल एक दस्तावेज़ के माध्यम से धक्का देता है जिसे आप डेस्कटॉप विलंबता में सुधार करने के लिए पहले डिस्क पर सहेजने का प्रयास कर रहे हैं, या यह सुनिश्चित करने के लिए सिस्टम जर्नल को डिस्क पर फ्लश करना चाहिए कि यह क्रैश की स्थिति में उपलब्ध है? इस प्रकार के I/O अनुसूचक निर्णय बड़ी संख्या में चरों जैसे कर्नेल पर प्रतीक्षा करने में व्यतीत समय, अनुरोध की तात्कालिकता, और बहुत कुछ में कारक होते हैं।
लगभग सभी निम्न-स्तरीय लिनक्स सेटिंग्स की तरह, आप फाइल सिस्टम पथ का उपयोग करके सीधे निरीक्षण कर सकते हैं कि आपका सिस्टम किस I/O शेड्यूलर का उपयोग कर रहा है। यह जानकारी प्रति-डिवाइस आधार पर sys
वर्चुअल फाइल सिस्टम का उपयोग करके नियंत्रित की जाती है। मेरे सिस्टम पर, मैं उस डिवाइस को सम्मिलित करके पा सकता हूं जिसमें मुझे दिलचस्पी है, sda
, पथ में /sys
:
$ cat /sys/block/sda/queue/scheduler [mq-deadline] kyber none
यह इंगित करता है कि मेरी sda
ड्राइव अन्य तरीकों के साथ एमक्यू mq-deadline
अनुसूचक का उपयोग कर रही है, kyber
और none
, उपयोग के लिए उपलब्ध है लेकिन इस समय सक्रिय रूप से नहीं चुना गया है। mq-deadline
शेड्यूलर को " [ए] काफी कम सीपीयू ओवरहेड के साथ अच्छा ऑलराउंडर " के रूप में वर्णित किया गया है, जो मुझे अच्छा लगता है!
आप समान सरल इंटरफ़ेस का उपयोग करके इनमें से कई सेटिंग्स को भी बदल सकते हैं। लिनक्स कर्नेल प्रलेखन इसे अच्छी तरह से समझाता है। संक्षेप में, बस वांछित अनुसूचक नाम को उसी पथ पर भेजना पर्याप्त है जैसा कि पहले था। निम्न आदेश kyber
अनुसूचक का उपयोग करने के लिए इस विशेष उपकरण के अनुसूचक को बदल देगा। ध्यान दें कि इस प्रकार की सेटिंग्स को बदलने के लिए root
एक्सेस आवश्यक है।
$ echo kyber > /sys/block/sda/queue/scheduler
प्रति-डिवाइस शेड्यूलर चल रहे कर्नेल पर उपलब्ध रनटाइम-ट्यून करने योग्य सेटिंग्स में से एक है। अतिरिक्त विकल्पों के लिए इन अन्य सेटिंग्स को देखें:
क्या होगा यदि नई, फैंसी सुविधाएं बहुत अच्छी लगती हैं, लेकिन आप मुख्य रूप से समर्थन और स्थिरता के बारे में चिंतित हैं?
दीर्घकालिक समर्थन कर्नेल, या LTS , Linux कर्नेल का एक संस्करण है जिसे विशेष रूप से एक विशिष्ट कर्नेल की तुलना में अधिक लंबी अवधि में समर्थन के लिए अनुकूलित किया गया है। सिस्टम के लिए जो पूर्वानुमान योग्य, स्थिर उन्नयन का समर्थन करते हैं, -lts
के साथ प्रत्यय वाले कर्नेल पैकेज का उपयोग करना अक्सर एक बहुत अच्छा विकल्प होता है। जबकि कोई विशेष पैच लागू नहीं किया गया है, 5.15 जैसे कर्नेल का उपयोग करने का अर्थ है कि समर्थन की गारंटी अक्टूबर 2023 तक है, न कि पहले। यदि आपने कर्नेल 4.9 को अपनाया होता जब इसे दिसंबर 2016 में जारी किया गया था, तो इसे जनवरी 2023 तक समर्थित किया गया होगा - परिवर्तनों को तोड़ने के बारे में चिंता करने के लिए यह एक लंबा समय नहीं है!
मेनलाइन संस्करण के बाहर दीर्घकालिक समर्थन कर्नेल संभवतः सबसे व्यापक रूप से उपलब्ध कर्नेल संस्करण है। कुछ वितरण जैसे उबंटू एलटीएस डिफ़ॉल्ट रूप से दीर्घकालिक समर्थन कर्नेल के साथ जहाज करते हैं, लेकिन अधिकांश अन्य वितरण linux-lts
के समान नामों वाले पैकेज को स्थापित और सक्षम करके एलटीएस कर्नेल का उपयोग करने का विकल्प प्रदान करते हैं। आपके चुने हुए वितरण की संभावना है कि विभिन्न कर्नेल को कैसे स्थापित और उपयोग किया जाए, यह समझाने के लिए गाइड हैं, इसलिए रॉक-सॉलिड एलटीएस कर्नेल को आज़माने के लिए, -lts
के साथ समाप्त होने वाले कर्नेल पैकेज देखें और वैकल्पिक कर्नेल पैकेज का उपयोग करने के लिए अपने चुने हुए वितरण के निर्देशों का पालन करें।
सूचना सुरक्षा के भीतर, सख्त करना संभावित शोषण और कमजोरियों को कम करने के लिए विशिष्ट क्षेत्रों को किनारे करने की प्रक्रिया को संदर्भित करता है। मुख्यधारा का लिनक्स कर्नेल स्पष्ट रूप से यथासंभव यथासंभव सुरक्षा की इस डिग्री को प्राप्त करने का प्रयास करता है, लेकिन कुछ उपयोगकर्ता बढ़ी हुई सुरक्षा के लिए उन्हें व्यापार करने के लिए अपने कर्नेल और इसकी सुविधा को बाधित करने का विकल्प चुन सकते हैं। कठोर लिनक्स कर्नेल यह प्रदान करता है।
आमतौर पर, कठोर लिनक्स कर्नेल एक विशिष्ट कर्नेल के समान व्यवहार करता है, हालांकि ट्रेडऑफ़ हैं। उदाहरण के लिए, कुछ एप्लिकेशन हार्ड कर्नेल पर काम नहीं कर सकते हैं, और कई पूर्व-संकलित कर्नेल मॉड्यूल को कठोर कर्नेल के साथ ठीक से एकीकृत करने के लिए अपने डीकेएमएस समकक्ष का उपयोग करने की आवश्यकता हो सकती है। फिर भी, मिशन-महत्वपूर्ण अनुप्रयोगों के लिए जहां सुरक्षा प्राथमिकता है, एक कठोर कर्नेल अक्सर सही विकल्प होता है।
DKMS का अर्थ "डायनेमिक कर्नेल मॉड्यूल सपोर्ट" है और यह एक ऐसी सुविधा है जो उपयोगकर्ताओं को कर्नेल मॉड्यूल के लिए स्रोत कोड का उपयोग करने की अनुमति देती है जिसमें वांछित कर्नेल के लिए पूर्व-संकलित समर्थन नहीं होता है। उदाहरण के लिए, Linux पर ZFS फाइल सिस्टम का उपयोग करने के लिए Linux प्रोजेक्ट पर OpenZFS को कर्नेल मॉड्यूल के रूप में स्थापित किया जाना चाहिए। कई वितरण एक पैकेज प्रदान करते हैं जो उपयोग के लिए तैयार पूर्व-संकलित मॉड्यूल को स्थापित करेगा, जो लंबे संकलन समय और संभावित असंगतताओं से बचा जाता है, लेकिन कस्टम कर्नेल का उपयोग करते समय सही ढंग से कार्य नहीं कर सकता है। दूसरी ओर, एक OpenZFS DKMS मॉड्यूल, आपके चुने हुए कर्नेल के विरुद्ध स्वयं को संकलित कर सकता है ताकि यह सुनिश्चित हो सके कि यह अपेक्षित रूप से कार्य करता है।
ज़ेन कर्नेल अधिक व्यापक रूप से समर्थित समुदाय-आधारित पैच सेटों में से एक है। अपस्ट्रीम लिनक्स कर्नेल से बड़े पैमाने पर प्रस्थान नहीं होने पर, ज़ेन (या लिकोरिक्स) कर्नेल प्रदर्शन को सुपरचार्ज करने के लिए परिवर्तन करता है। लिकोरिक्स वेब साइट से:
Liquorix एक डिस्ट्रो कर्नेल रिप्लेसमेंट है जिसे डेस्कटॉप, मल्टीमीडिया और गेमिंग वर्कलोड के लिए सर्वश्रेष्ठ कॉन्फ़िगरेशन और कर्नेल स्रोतों का उपयोग करके बनाया गया है।
एक परिवर्तन, उदाहरण के लिए, डिफ़ॉल्ट रूप से bfq
एल्गोरिथ्म का चयन करने के लिए उपरोक्त I/O अनुसूचक को बदलना है, जो सिस्टम प्रतिक्रिया के लिए अनुकूलित करता है। परिवर्तनों का एक और सेट स्वैप स्टोरेज को संपीड़ित करता है और उच्च मेमोरी लोड के तहत अच्छा प्रदर्शन करने के लिए वैकल्पिक कैशिंग एल्गोरिदम का उपयोग करता है।
अधिक अच्छी तरह से स्थापित पैच सेटों में से एक के रूप में, आपकी पसंद के वितरण में पहले से ही एक linux-zen
पैकेज हो सकता है जो उपयोग के लिए तैयार है - हालाँकि, प्रोजेक्ट प्रलेखन एक ट्यूटोरियल भी प्रदान करता है जो बताता है कि यदि आपको अतिरिक्त विकल्पों की आवश्यकता है तो इस कर्नेल का उपयोग कैसे करें।
linux-tkg कर्नेल विशेष रूप से गेमिंग प्रदर्शन को अनुकूलित करने के लिए डिज़ाइन किए गए पैच का एक विशेष सेट है। ग्राफिक्स कार्ड से जितना संभव हो उतने एफपीएस को निचोड़ना एक कठिन अभ्यास हो सकता है, लेकिन टीकेजी पैच सेट में परिवर्तन लिनक्स कर्नेल के महत्वपूर्ण टुकड़ों में केंद्रित परिवर्तनों के साथ अतिरिक्त लाभ प्रदान कर सकते हैं।
उदाहरण के लिए, अतिरिक्त CPU शेड्यूलर जोड़े गए हैं, जैसे प्रोजेक्ट C शेड्यूलर या -ck पैच सेट। केक जैसे नेटवर्क एल्गोरिदम को डिफ़ॉल्ट रूप से सक्षम किया जाता है, जैसा कि -O2
जैसे अनुकूलित संकलन झंडे हैं, जितना संभव हो सके संकलित कोड से अधिक से अधिक प्रदर्शन को निचोड़ने के लिए।
-tkg
पैच सेट LTS या ज़ेन कर्नेल की तुलना में कम सर्वव्यापी है, लेकिन GitHub पर इंस्टॉलेशन चरण कस्टम कर्नेल को संकलित और स्थापित करने के तरीके के बारे में विस्तृत गाइड प्रदान करते हैं।
XanMod पैच सेट उपयोगकर्ताओं को लक्षित करने वाली सुविधाओं का एक समान सेट प्रदान करता है जिसके लिए गेमिंग जैसे उपयोग के मामलों के लिए उपयुक्त कम-विलंबता, उच्च-प्रदर्शन कर्नेल की आवश्यकता होती है। किसी भी मामले में, tkg और XanMod कर्नेल लिनक्स कर्नेल का एक बहुत ही विशिष्ट रूप प्रदान करते हैं जो अभी भी गेमिंग मशीनों पर अतिरिक्त लाभों के साथ दिन-प्रतिदिन के ऑपरेटिंग सिस्टम के रूप में कार्य कर सकता है।
शब्द "रीयल-टाइम कंप्यूटिंग" एक प्रणाली की अवधारणा को संदर्भित करता है जिसका उद्देश्य यह गारंटी देना है कि कुछ संचालन समय की एक निश्चित विंडो चलाते हैं। उदाहरण के लिए, एक प्रणाली जो किसी कार या विमान के पंखों के ब्रेक को नियंत्रित करती है, डिस्क पर लंबित लेखन या स्क्रीन पर चित्र खींचने से बाधित होने का जोखिम नहीं उठा सकती है।
रीयल टाइम लिनक्स प्रोजेक्ट पैच का एक सेट प्रदान करता है जो इस कार्यक्षमता की पेशकश करता है। हालांकि ये सुविधाएँ अक्सर बहुत विशिष्ट होती हैं और आमतौर पर डेस्कटॉप या सर्वर अनुप्रयोगों के लिए अनुकूल नहीं होती हैं, फिर भी वे सही स्थिति में गंभीर रूप से महत्वपूर्ण हो सकती हैं। उन परियोजनाओं के लिए जिनका विशेष उद्योगों में अनुप्रयोग है, ये रीयल-टाइम पैच एक आवश्यकता हैं।
-rt
कर्नेल के सूट में बहुत अधिक लक्षित दर्शक होते हैं, लेकिन गेमिंग या कम-विलंबता के लिए अनुकूलित कर्नेल की तुलना में अक्सर अधिक व्यापक होते हैं क्योंकि उनके महत्व के कारण वे उपयोग में रहते हैं। आपके वितरण का पैकेज प्रबंधक linux-rt
या linux-rt-lts
जैसे नामों के तहत इस प्रकार के कर्नेल प्रदान कर सकता है।
वहाँ कई और विशिष्ट गुठली हैं जिन्हें हम खोजते हैं, लेकिन हम पूरे दिन यहाँ रहेंगे! इसके साथ ही, हमने पहले ही जिन विभिन्न प्रकारों के बारे में बात की है, उनका उपयोग करके कर्नेल को अनुकूलित करने के और भी तरीके हैं।
इनमें से कई पैच की एक दिलचस्प विशेषता यह है कि वे अक्सर कर्नेल में संयुक्त होते हैं जो उनकी विशेषताओं को एक कर्नेल स्रोत पेड़ में मिलाते हैं। उदाहरण के लिए, परिचालन मशीनिंग बुनियादी ढांचे के एक महत्वपूर्ण टुकड़े को -rt
कर्नेल की रीयल-टाइम क्षमताओं की आवश्यकता हो सकती है, लेकिन कठोर कर्नेल की अतिरिक्त सुरक्षा से भी लाभ होता है। जब तक अलग-अलग पैच एक साथ सफाई से लगाए जा सकते हैं, तब तक आपको आपकी सटीक ज़रूरतों के अनुरूप गुठली को मिलाने और मिलाने से कोई नहीं रोकता है।
कुछ वितरण इसे केवल पैच सेट को कर्नेल के पैकेज नाम में जोड़कर प्रदान करते हैं। उदाहरण के लिए, आर्क लिनक्स यूजर रिपोजिटरी linux-rt-lts
पैकेज प्रदान करता है, जो रीयल-टाइम और दीर्घकालिक समर्थन कर्नेल सुविधाओं को जोड़ता है। उबंटू एडब्ल्यूएस ईसी 2 में ऑपरेशन के लिए कर्नेल को अनुकूलित करने के लिए विभिन्न परिवर्तनों के साथ विशेष रूप से linux-image-*-aws
एडब्ल्यूएस जैसे पैकेज प्रदान करता है।
आपके चुने हुए वितरण के बावजूद, यदि आप एक कस्टम कर्नेल चलाने में रुचि रखते हैं, तो उपलब्ध कर्नेल के लिए अपने वितरण के पैकेजों का पता लगाना सुनिश्चित करें। वे Linux कर्नेल के विशेष संस्करण के साथ आरंभ करने का सबसे सरल और तेज़ तरीका प्रदान करते हैं।
इस लेख ने केवल लिनक्स कर्नेल परिदृश्य की सतह को खरोंच दिया है। जबकि इनमें से कई गुठली व्यापक हैं और आमतौर पर अधिकांश वितरण रिपॉजिटरी में पाए जाते हैं, कुछ और गूढ़ पैच सेट मौजूद हैं जो कर्नेल को और भी आगे बढ़ाते हैं। एक ओपन-सोर्स कर्नेल के साथ, आप एक कस्टम को अपनी आवश्यकताओं के लिए संकलित करने के लिए कर्नेल को स्वयं भी संशोधित कर सकते हैं, लेकिन यह एक और समय के लिए एक गाइड है।
तब तक, अधिक जानकारी के लिए इनमें से कुछ संसाधनों की जाँच करें और एक कर्नेल खोजें जिसे आप अपने लिए आज़माना चाहते हैं!